
#ifndef MCU_GPIO_H
#define MCU_GPIO_H

#ifdef MCU_GPIO_IMPLEMENTATION
  #define MCU_GPIO_EXT  
#else
  #define MCU_GPIO_EXT extern
#endif

/* 宏定义 */
// led
#define LED_TOGGLE()          mcu_led_toggle()        //LED翻转
#define LED_ON()              mcu_led_on()            //LED打开
#define LED_OFF()             mcu_led_off()           //LED关闭
#define LED_RED_TOGGLE()      mcu_led_red_toggle()    //红灯翻转
#define LED_RED_ON()          mcu_led_red_on()        //红灯打开
#define LED_RED_OFF()         mcu_led_red_off()       //红灯关闭
#define LED_GREEN_TOGGLE()    mcu_led_green_toggle()  //绿灯翻转
#define LED_GREEN_ON()        mcu_led_green_on()      //绿灯打开
#define LED_GREEN_OFF()       mcu_led_green_off()     //绿灯关闭


// iic
#define SET_SCL()         mcu_iic_set_scl()           //设置SCL
#define CLR_SCL()         mcu_iic_clr_scl()           //清零SCL
#define SET_SDA()         mcu_set_iic_sda()           //设置SDA
#define CLR_SDA()         mcu_clr_iic_sda()           //清零SDA
#define GET_SDA()         mcu_get_iic_sda()           //获取SDA电平
#define CFG_SDA_OUTPUT()  mcu_iic_config_sda_output() //配置SDA输出
#define CFG_SDA_INPUT()   mcu_iic_config_sda_input()  //配置SDA输入


/* 内部变量声明 */


/* 全局变量声明 */



/* 内部函数声明 */
// led
void mcu_led_init(void);
void mcu_led_on(void);
void mcu_led_off(void);
void mcu_led_toggle(void);
void mcu_led_red_on(void);
void mcu_led_red_off(void);
void mcu_led_red_toggle(void);
void mcu_led_green_on(void);
void mcu_led_green_off(void);
void mcu_led_green_toggle(void);

// iic
void mcu_iic_init(void);
void mcu_iic_set_scl(void);
void mcu_iic_clr_scl(void);
void mcu_iic_set_sda(void);
void mcu_iic_clr_sda(void);
void mcu_iic_get_sda(void);
void mcu_iic_config_sda_output(void);
void mcu_iic_config_sda_input(void);


/* 外部函数声明 */
MCU_GPIO_EXT void mcu_gpio_init(void);

#endif
